package com.yixing.tech.wcs.service;

/**
 * 料箱交互调度服务接口
 * 负责管理料箱与输送线设备之间的交互流程，包括放下、处理、取出等操作
 */
public interface IBoxInteractionScheduleService {

    /**
     * 查询状态是否允许放下料箱
     * 检查设备当前状态是否允许料箱放下操作
     */
    void queryStateForPutDownBox();

    /**
     * 查询状态是否允许取出料箱
     * 检查设备当前状态是否允许料箱取出操作
     */
    void queryStateForTakeOutBox();

    /**
     * 查询设备状态
     * 向输送线设备查询当前状态信息
     */
    void queryDeviceState();

    /**
     * 查询摄像头识别的料箱码
     * 获取摄像头读取到的料箱编码信息
     */
    void queryCameraPodCode();

    /**
     * 通知料箱放下完成
     * 向输送线设备发送料箱放下完成的通知
     */
    void notifyBoxPutDownFin();

    /**
     * 通知料箱处理完成
     * 向输送线设备发送料箱分拣等处理完成的通知
     */
    void notifyBoxHandlingFin();

    /**
     * 通知料箱取出完成
     * 向输送线设备发送料箱取出完成的通知
     */
    void notifyBoxTakeOutFin();

    /**
     * 检测料箱处理完成
     * 检查并更新料箱处理完成后的系统状态
     */
    void boxHandlingFin();
}
